package co.yixiang.yshop.module.crm.controller.admin.basestorage.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import co.yixiang.yshop.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 仓库分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BaseStoragePageReqVO extends PageParam {

    @Schema(description = "仓库编码", example = "WH001")
    private String storageCode;

    @Schema(description = "仓库名称", example = "主仓库")
    private String storageName;

    @Schema(description = "仓库地址")
    private String storageAddress;

    @Schema(description = "仓库类型")
    private String storageType;

    @Schema(description = "仓库星级")
    private Integer storageStar;

    @Schema(description = "管家星级")
    private Integer housekeeperStar;

    @Schema(description = "服务热线")
    private String serviceHotline;

    @Schema(description = "父级ID", example = "0")
    private Integer parentId;

    @Schema(description = "是否托盘管理", example = "1")
    private Integer isPlateManager;

    @Schema(description = "是否区域", example = "1")
    private Integer isArea;

    @Schema(description = "是否货架", example = "1")
    private Integer isShelves;

    @Schema(description = "省份ID")
    private Integer provinceId;

    @Schema(description = "城市ID")
    private Integer cityId;

    @Schema(description = "区域ID")
    private Integer regionId;

    @Schema(description = "联系人姓名")
    private String contactName;

    @Schema(description = "联系人手机号")
    private String contactMobileNo;

    @Schema(description = "是否启用", example = "1")
    private Integer enable;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    @Schema(description = "更新时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] updateTime;

} 